module.exports=class wsArr{
	constructor(){
		this.arr=[]
		/*
			@type wsArr
			[
				{
					code:1,
					data:[
						{
							id:Number
							close:function(){}
						}
					]

				}
			]
		*/
	}
	static getArr(code,arr){
		return arr.find(item=>{
			if(item.code===code){
				return true
			}
		})||null
	}
	start(ws={
		code:0,
		id:0,
		ws:{}
	}){//一个桌子被扫码
		let idArr=wsArr.getArr(ws.code,this.arr)
		if(idArr!==null){
			let id=idArr.data.find(item=>{
				if(item.id===ws.id){
					return true
				}
			})
			if(id){
				console.log("重复了关闭一个");
				id.ws.close()
				id.ws=ws.ws
			}else{
				idArr.data.push(ws)
			}
		}else{
			this.arr.push({
				code:ws.code,
				data:[{
					id:ws.id,
					ws:ws.ws
				}]
			})
		}
		this.arr.forEach(item=>{
			item.data.forEach(i=>{
				console.log("code:",item.code+':'+i.id);
			})
		})
	}
	update(code){//数据更新
		//????怎么更新还是问题
		let idArr=wsArr.getArr(code,this.arr)
		idArr.data.forEach(item => {
			item.ws.send()
		});
	}
	exit(ws={
		code,id
	}){//一个用户退出
		console.log("一个用户退出")
		let idArr=wsArr.getArr(ws.code,this.arr)
		if(idArr!==null){
			let index=idArr.data.findIndex(item=>{
				if(item.id===ws.id){
					item.ws.close()
					return true
				}
			})
			if(index!==-1){
				return idArr.data.splice(index,1).length===1?true:false
			}
		}
		return false
	}
	clear(code){//清空一个code的用户，用于订单结束
		let arr=this.arr
		let idArr=wsArr.getArr(code,this.arr)
		idArr.data.forEach(item=>{
			item.ws.close()
		})
		let index=arr.findIndex(item=>item.code===code)
		if(index!==-1){
			return arr.splice(index,1)?true:false
		}
		return false
	}
}